import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException;

//ch01示例7
public class Test6 {
    Class clz;
    {
        try {
            clz = Class.forName("Person");
            Constructor c1=clz.getDeclaredConstructor();
            Object obj=c1.newInstance();
            System.out.println(obj);
            Constructor c2=clz.getDeclaredConstructor(String.class);
            c2.setAccessible(true);
            obj=c2.newInstance("New Person");
            System.out.println(obj);

            Constructor c3=clz.getDeclaredConstructor(String.class,String.class,String.class);
            c3.setAccessible(true);
            obj=c3.newInstance("New Person","beijing","hello!");
            System.out.println(obj);
        } catch (ClassNotFoundException e) {
            e.printStackTrace();
        } catch (NoSuchMethodException e) {
            e.printStackTrace();
        } catch (InvocationTargetException e) {
            e.printStackTrace();
        } catch (InstantiationException e) {
            e.printStackTrace();
        } catch (IllegalAccessException e) {
            e.printStackTrace();
        }
    }
}
